// pages/component/addEvent/addEvent.js
import { getTimeStm } from '../../../utils/util.js';
import { addevent } from '../../../api/getData.js';
Component({
  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
    startTime: '',
    endTime: '',
    descriList: ['停机保养', '设备清洁', '设备维修', '自定义'],
    choosedIndex: 0, // 被选中的描述
    isShow: false,//选择descriList的picker
    inputValue: '停机保养',
    showPicker: false,
    timeSign: '',
    hideBar: false
  },

  /**
   * 组件的方法列表
   */
  methods: {
    // 显示选择时间
    pickerShow: function (e) {
      let sign = e.currentTarget.dataset.sign;
      this.setData({
        showPicker: true,
        timeSign: e.currentTarget.dataset.sign,
        hideBar: true
      });
      this.selectComponent('.date-picker').formMatInit(sign == 0 && this.data.startTime || this.data.endTime)
    },
    // 隐藏选择时间
    hiddencover() {
      this.setData({
        showPicker: false,
      })
    },
    // 选择时间的确定
    handleSelecteDate(e) {
      let { date, timeSign } = e.detail,
        timeArr = [getTimeStm(this.data.startTime), getTimeStm(this.data.endTime)],
        dataStm = new Date().getTime();
      timeArr[timeSign] = getTimeStm(date);
      if (timeArr[timeSign] > dataStm) {
        wx.showToast({
          title: '时间不能大于当前时间',
          icon: 'none'
        })
        return
      }
      if (timeArr[0] === timeArr[1]) {
        wx.showToast({
          title: '时间不能相等',
          icon: 'none'
        })
        return
      }

      if (timeArr[0] > timeArr[1]) {
        wx.showToast({
          title: '开始时间不能大于结束时间',
          icon: 'none'
        })
        return
      }

      if (timeArr[1] - timeArr[0] > 15724800000) {
        wx.showToast({
          title: '时间不能大于半年',
          icon: 'none'
        })
        return
      }

      let obj = {};
      obj[timeSign == 0 && "startTime" || "endTime"] = date;
      this.setData(obj)
      this.hiddencover()
    },
    // 显示添加描述的选择框
    showDialogfn() {
      this.setData({
        isShow: this.data.isShow === false ? true : false
      })
    },
    // 添加事件点击确定
    sure() {
      let { startTime, endTime, inputValue} = this.data;

      if (!startTime || !endTime || !inputValue) {
        let title = !startTime && '开始时间必填' || (!endTime && '恢复时间必填' || '描述必填');
        wx.showToast({
          title,
          icon: 'none'
        })
        return
      }
      let tmsStart = new Date(startTime.split('-').join('/')).getTime(),
        tmsEnd = new Date(endTime.split('-').join('/')).getTime(),
        nowTms = new Date().getTime();
      if (tmsStart > nowTms || tmsEnd > nowTms) {
        wx.showToast({
          title: '时间不能大于当前时间',
          icon: 'none'
        })
        return
      }
      addevent(tmsStart, tmsEnd, inputValue)
        .then(res => {
          if (res.resCode === "SUCCESS") {
            wx.showToast({
              title: '添加成功！',
              icon: 'none'
            })
            setTimeout(() => {
              this.hide()
            },800)
          } else {
            wx.showToast({
              title: res.message,
              icon: 'none'
            })
          }
        })
    },
    // 如果没有描述列表的输入方法
    getInp(e) {
      this.setData({
        inputValue: e.detail.value
      })
    },
    // 添加事件点击取消
    hide() {
      this.triggerEvent('closeAddEvent')
    },
    // 阻止蒙版层滚动
    preventTouchMove(e) {
      return false
    },
    // 选择描述
    chooseDescribe(e) {
      let index=e.detail.value[0],
          list=this.data.descriList;

      this.setData({
        choosedIndex: index,
        inputValue:list.length-1===index?'':list[index]
      })
    },
    // 选择描述确定选择
    pickerSure() {
      if (this.data.descriList.length - 1 !== this.data.choosedIndex) { // 没有选择其他
        this.setData({
          inputValue: this.data.descriList[this.data.choosedIndex]
        })
      }else{
        this.setData({
          inputValue: ''
        })
      }
      this.showDialogfn()
    },
    // 取消选择描述
    pickerCancel() {
      this.showDialogfn()
    },
  }
})
